JavaMail API হলো একটি বিশেষ Java লাইব্রেরি যা ইমেল পাঠানো এবং গ্রহণ করার জন্য ব্যবহৃত হয়। JavaMail API দিয়ে SMTP, POP3, এবং IMAP প্রোটোকল ব্যবহার করে ইমেল কার্যক্রম পরিচালনা করা যায়। এটি ইমেল ক্লায়েন্ট তৈরি এবং স্বয়ংক্রিয়ভাবে ইমেল পাঠানোর জন্য বিশেষভাবে কার্যকর।
JavaMail API ব্যবহারের জন্য JavaMail লাইব্রেরি এবং Internet Addressing API প্রয়োজন। JavaMail API মূলত নিম্নলিখিত ক্লাস এবং ইন্টারফেস নিয়ে গঠিত:
SMTP (Simple Mail Transfer Protocol) হলো ইমেল পাঠানোর জন্য ব্যবহৃত প্রোটোকল। JavaMail API ব্যবহার করে সহজেই SMTP প্রোটোকল দিয়ে ইমেল পাঠানো যায়।
নিচের উদাহরণে Gmail SMTP সার্ভার ব্যবহার করে একটি সাধারণ ইমেল পাঠানো হয়েছে।
import java.util.Properties;
import javax.mail.*;
import javax.mail.internet.*;
public class EmailSender {
public static void main(String[] args) {
// SMTP সার্ভারের জন্য প্রয়োজনীয় প্রোপার্টি সেট করা
Properties properties = new Properties();
properties.put("mail.smtp.auth", "true");
properties.put("mail.smtp.starttls.enable", "true");
properties.put("mail.smtp.host", "smtp.gmail.com");
properties.put("mail.smtp.port", "587");
// প্রেরকের ইমেল এবং পাসওয়ার্ড
final String senderEmail = "your-email@gmail.com";
final String senderPassword = "your-password";
// প্রাপক ইমেল
String recipientEmail = "recipient-email@example.com";
// সেশন তৈরি
Session session = Session.getInstance(properties, new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(senderEmail, senderPassword);
}
});
try {
// মেসেজ সেটআপ
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress(senderEmail));
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(recipientEmail));
message.setSubject("Test Email from JavaMail API");
message.setText("Hello, this is a test email sent from JavaMail API.");
// মেইল পাঠানো
Transport.send(message);
System.out.println("Email sent successfully.");
} catch (MessagingException e) {
e.printStackTrace();
}
}
}
ব্যাখ্যা:
mail.smtp.auth
এবং mail.smtp.starttls.enable
ব্যবহার করে SMTP সার্ভারের জন্য প্রয়োজনীয় সেটিংস সেট করা হয়েছে।Session
তৈরি করা হয়েছে।MimeMessage
ব্যবহার করে প্রাপক, বিষয় এবং বার্তা সেট করা হয়েছে।POP3 (Post Office Protocol 3) এবং IMAP (Internet Message Access Protocol) প্রোটোকল ব্যবহার করে ইমেল সার্ভার থেকে ইমেল পড়া যায়।
import java.util.Properties;
import javax.mail.*;
import javax.mail.internet.*;
public class EmailReader {
public static void main(String[] args) {
// POP3 সার্ভারের জন্য প্রয়োজনীয় প্রোপার্টি সেট করা
Properties properties = new Properties();
properties.put("mail.pop3.host", "pop.gmail.com");
properties.put("mail.pop3.port", "995");
properties.put("mail.pop3.starttls.enable", "true");
final String userEmail = "your-email@gmail.com";
final String userPassword = "your-password";
// সেশন তৈরি
Session session = Session.getDefaultInstance(properties);
try {
// স্টোর তৈরি এবং সংযোগ
Store store = session.getStore("pop3s");
store.connect("pop.gmail.com", userEmail, userPassword);
// ইনবক্স ফোল্ডার অ্যাক্সেস করা
Folder inbox = store.getFolder("INBOX");
inbox.open(Folder.READ_ONLY);
// মেসেজ অ্যাক্সেস করা
Message[] messages = inbox.getMessages();
for (Message message : messages) {
System.out.println("Subject: " + message.getSubject());
System.out.println("From: " + message.getFrom()[0]);
System.out.println("Text: " + message.getContent().toString());
}
// ফোল্ডার এবং স্টোর বন্ধ করা
inbox.close(false);
store.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
ব্যাখ্যা:
mail.pop3.host
এবং mail.pop3.starttls.enable
ব্যবহার করে POP3 সার্ভারের সেটিংস সেট করা হয়েছে।JavaMail API ব্যবহার করে ইমেলে অ্যাটাচমেন্ট যুক্ত করা যায়। MimeBodyPart ব্যবহার করে অ্যাটাচমেন্ট সেট করা হয় এবং Multipart
এ যুক্ত করা হয়।
import java.util.Properties;
import javax.mail.*;
import javax.mail.internet.*;
import java.io.File;
public class EmailWithAttachment {
public static void main(String[] args) {
Properties properties = new Properties();
properties.put("mail.smtp.auth", "true");
properties.put("mail.smtp.starttls.enable", "true");
properties.put("mail.smtp.host", "smtp.gmail.com");
properties.put("mail.smtp.port", "587");
final String senderEmail = "your-email@gmail.com";
final String senderPassword = "your-password";
String recipientEmail = "recipient-email@example.com";
Session session = Session.getInstance(properties, new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(senderEmail, senderPassword);
}
});
try {
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress(senderEmail));
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(recipientEmail));
message.setSubject("Email with Attachment");
// মেসেজ অংশ তৈরি
MimeBodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart.setText("Please find the attachment below.");
// অ্যাটাচমেন্ট অংশ তৈরি
MimeBodyPart attachmentPart = new MimeBodyPart();
attachmentPart.attachFile(new File("path/to/attachment.txt"));
// মেসেজ এবং অ্যাটাচমেন্ট একত্রিত করা
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(messageBodyPart);
multipart.addBodyPart(attachmentPart);
message.setContent(multipart);
Transport.send(message);
System.out.println("Email sent successfully with attachment.");
} catch (Exception e) {
e.printStackTrace();
}
}
}
ব্যাখ্যা:
JavaMail API ইমেল পাঠানো, পড়া এবং অ্যাটাচমেন্ট যুক্ত করার জন্য একটি শক্তিশালী টুলসেট প্রদান করে। SMTP ব্যবহার করে ইমেল পাঠানো এবং POP3/IMAP ব্যবহার করে ইমেল পড়া সম্ভব হয়। JavaMail API ব্যবহার করে ইমেল ক্লায়েন্ট তৈরি, স্বয়ংক্রিয় ইমেল পাঠানো এবং অ্যাটাচমেন্ট যুক্ত করার কাজ করা যায়, যা Java অ্যাপ্লিকেশনকে আরও কার্যকরী করে তো
Read more